import time

from selenium.webdriver.common.by import By

from common.Utils import BlogDriver
# 测试博客登陆页面

class BlogLogin:
    url = ""
    driver = ""
    def __init__(self):
        self.url = "http://8.137.19.140:9090/blog_login.html"
        self.driver = BlogDriver.driver
        self.driver.get(self.url)
    # 成功登陆的测试用例
    def LoginSucTest(self):
        self.driver.find_element(By.CSS_SELECTOR, "#username").clear()
        self.driver.find_element(By.CSS_SELECTOR, "#password").clear()

        self.driver.find_element(By.CSS_SELECTOR, "#username").send_keys("zhangsan")
        self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("123456")
        self.driver.find_element(By.CSS_SELECTOR, "#submit").click()
        # 能够找到博客首页用户的昵称说明登录成功，否则登录失败
        self.driver.find_element(By.CSS_SELECTOR, "body > div.container > div.left > div > h3")
        # 添加屏幕截图
        BlogDriver.getScreeShot()
        # 返回到登陆页面
        self.driver.back()

    # 异常登陆的测试用例
    def LoginFailTest(self):
        # 若连续多次的send_keys，则会出现关键词拼接，而不是替换，如要替换需要先clear
        self.driver.find_element(By.CSS_SELECTOR, "#username").clear()
        self.driver.find_element(By.CSS_SELECTOR, "#password").clear()

        self.driver.find_element(By.CSS_SELECTOR, "#username").send_keys("zhangsan")
        # 错误的密码和正确的账号
        self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("123")
        self.driver.find_element(By.CSS_SELECTOR, "#submit").click()
        # 检查是否登录失败
        acutal = self.driver.find_element(By.CSS_SELECTOR, "#body").text
        # 添加屏幕截图
        BlogDriver.getScreeShot()
        # 断言检测一下是否符合预期
        assert acutal == "用户名或密码错误！"

login = BlogLogin()
login.LoginSucTest()
login.LoginFailTest()